home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / TextUtils.p < prev    next >
Text File  |  1995-09-14  |  18KB  |  546 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 10:50:30 PM }
  2. {}
  3. {     File:        TextUtils.p}
  4. { }
  5. {     Contains:    Text Utilities Interfaces.}
  6. { }
  7. {     Version:    Technology:    System 7.5}
  8. {                 Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18}
  9. { }
  10. {     Copyright:    © 1984-1995 by Apple Computer, Inc.}
  11. {                 All rights reserved.}
  12. { }
  13. {     Bugs?:        If you find a problem with this file, use the Apple Bug Reporter}
  14. {                 stack.  Include the file and version information (from above)}
  15. {                 in the problem description and send to:}
  16. {                     Internet:    apple.bugs@applelink.apple.com}
  17. {                     AppleLink:    APPLE.BUGS}
  18. { }
  19. {}
  20.  
  21. unit TextUtils;
  22. interface
  23.  
  24.  
  25. {$IFC UNDEFINED __TEXTUTILS__}
  26. {$SETC __TEXTUTILS__ := 1}
  27.  
  28.     uses
  29.         ConditionalMacros, Types, Script, OSUtils, QuickdrawText, IntlResources;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34. {}
  35. {}
  36. {    Here are the current routine names and the translations to the older forms.}
  37. {    Please use the newer forms in all new code and migrate the older names out of existing}
  38. {    code as maintainance permits.}
  39. {    }
  40. {    New Name                    Old Name(s)}
  41. {    }
  42. {    CompareString                IUCompPString IUMagString IUMagPString IUCompString }
  43. {    CompareText}
  44. {    DateString                    IUDatePString IUDateString }
  45. {    EqualString                            }
  46. {    ExtendedToString            FormatX2Str}
  47. {    FindScriptRun}
  48. {    FindWordBreaks                NFindWord FindWord}
  49. {    FormatRecToString            Format2Str}
  50. {    GetIndString            }
  51. {    GetString}
  52. {    IdenticalString                IUMagIDString IUMagIDPString IUEqualString IUEqualPString}
  53. {    IdenticalText}
  54. {    InitDateCache}
  55. {    LanguageOrder                IULangOrder}
  56. {    LongDateString                IULDateString}
  57. {    LongTimeString                IULTimeString}
  58. {    LowercaseText                LwrText LowerText}
  59. {    Munger}
  60. {    NewString                }
  61. {    NumToString                }
  62. {    RelString                }
  63. {    ReplaceText}
  64. {    ScriptOrder                    IUScriptOrder}
  65. {    SetString                }
  66. {    StringOrder                    IUStringOrder}
  67. {    StringToDate                String2Date}
  68. {    StringToExtended            FormatStr2X}
  69. {    StringToFormatRec            Str2Format}
  70. {    StringToNum                }
  71. {    StringToTime                                }
  72. {    StripDiacritics                StripText}
  73. {    StyledLineBreak}
  74. {    TextOrder}
  75. {    TimeString                    IUTimeString IUTimePString}
  76. {    TruncString}
  77. {    TruncText}
  78. {    UpperString                    UprString}
  79. {    UppercaseStripDiacritics    StripUpperText}
  80. {    UppercaseText                UprText UprText}
  81. {}
  82. { New constants for System 7.0: }
  83.  
  84.     const
  85. { Constants for truncWhere argument in TruncString and TruncText }
  86.         truncEnd = 0;                            { Truncate at end }
  87.         truncMiddle = $4000;                        { Truncate in middle }
  88.         smTruncEnd = 0;                            { Truncate at end - obsolete }
  89.         smTruncMiddle = $4000;                        { Truncate in middle - obsolete }
  90. { Constants for TruncString and TruncText results }
  91.         notTruncated = 0;                            { No truncation was necessary }
  92.         truncated = 1;                            { Truncation performed }
  93.         truncErr = -1;                            { General error }
  94.         smNotTruncated = 0;                            { No truncation was necessary - obsolete }
  95.         smTruncated = 1;                            { Truncation performed    - obsolete }
  96.         smTruncErr = -1;                            { General error - obsolete }
  97.  
  98.         fVNumber = 0;                            { first version of NumFormatString }
  99. { Special language code values for Language Order }
  100.         systemCurLang = -2;                            { current (itlbLang) lang for system script }
  101.         systemDefLang = -3;                            { default (table) lang for system script }
  102.         currentCurLang = -4;                            { current (itlbLang) lang for current script }
  103.         currentDefLang = -5;                            { default lang for current script }
  104.         scriptCurLang = -6;                            { current (itlbLang) lang for specified script }
  105.         scriptDefLang = -7;                            { default language for a specified script }
  106.  
  107.         iuSystemCurLang = -2;                            { <obsolete> current (itlbLang) lang for system script }
  108.         iuSystemDefLang = -3;                            { <obsolete> default (table) lang for system script }
  109.         iuCurrentCurLang = -4;                            { <obsolete> current (itlbLang) lang for current script }
  110.         iuCurrentDefLang = -5;                            { <obsolete> default lang for current script }
  111.         iuScriptCurLang = -6;                            { <obsolete> current (itlbLang) lang for specified script }
  112.  
  113. { <obsolete> default language for a specified script }
  114.         iuScriptDefLang = -7;
  115.  
  116.  
  117.     type
  118.         StyledLineBreakCode = SInt8;
  119.  
  120.  
  121.     const
  122.         smBreakWord = 0;
  123.         smBreakChar = 1;
  124.         smBreakOverflow = 2;
  125.  
  126.  
  127.     type
  128.         FormatClass = SInt8;
  129.  
  130.  
  131.     const
  132.         fPositive = 0;
  133.         fNegative = 1;
  134.         fZero = 2;
  135.  
  136.  
  137.     type
  138.         FormatResultType = SInt8;
  139.  
  140.  
  141.     const
  142.         fFormatOK = 0;
  143.         fBestGuess = 1;
  144.         fOutOfSynch = 2;
  145.         fSpuriousChars = 3;
  146.         fMissingDelimiter = 4;
  147.         fExtraDecimal = 5;
  148.         fMissingLiteral = 6;
  149.         fExtraExp = 7;
  150.         fFormatOverflow = 8;
  151.         fFormStrIsNAN = 9;
  152.         fBadPartsTable = 10;
  153.         fExtraPercent = 11;
  154.         fExtraSeparator = 12;
  155.         fEmptyFormatString = 13;
  156.  
  157.  
  158.     type
  159.         NumFormatString = packed record
  160.                 fLength: UInt8;
  161.                 fVersion: UInt8;
  162.                 data: packed array[0..253] of CHAR;            { private data }
  163.             end;
  164.  
  165.         NumFormatStringRec = NumFormatString;
  166.  
  167.         FVector = record
  168.                 start: INTEGER;
  169.                 length: INTEGER;
  170.             end;
  171.  
  172. { index by [fPositive..fZero] }
  173.         TripleInt = array[0..2] of FVector;
  174.  
  175.         ScriptRunStatus = record
  176.                 script: SInt8;
  177.                 runVariant: SInt8;
  178.             end;
  179.  
  180. { New types for System 7.0: }
  181. { Type for truncWhere parameter in new TruncString, TruncText }
  182.         TruncCode = INTEGER;
  183.  
  184.  
  185.     const
  186.         shortDate = 0;
  187.         longDate = 1;
  188.         abbrevDate = 2;
  189.  
  190.  
  191.     type
  192.         DateForm = SInt8;
  193.  
  194.  
  195.     const
  196. { StringToDate status values }
  197.         fatalDateTime = $8000;                        { StringToDate and String2Time mask to a fatal error }
  198.         longDateFound = 1;                            { StringToDate mask to long date found }
  199.         leftOverChars = 2;                            { StringToDate & Time mask to warn of left over characters }
  200.         sepNotIntlSep = 4;                            { StringToDate & Time mask to warn of non-standard separators }
  201.         fieldOrderNotIntl = 8;                            { StringToDate & Time mask to warn of non-standard field order }
  202.         extraneousStrings = 16;                            { StringToDate & Time mask to warn of unparsable strings in text }
  203.         tooManySeps = 32;                            { StringToDate & Time mask to warn of too many separators }
  204.         sepNotConsistent = 64;                            { StringToDate & Time mask to warn of inconsistent separators }
  205.         tokenErr = $8100;                        { StringToDate & Time mask for 'tokenizer err encountered' }
  206.         cantReadUtilities = $8200;
  207.         dateTimeNotFound = $8400;
  208.         dateTimeInvalid = $8800;
  209.  
  210.  
  211.     type
  212.         StringToDateStatus = INTEGER;
  213.  
  214.         String2DateStatus = INTEGER;
  215.  
  216.         DateCacheRecord = packed record
  217.                 hidden: array[0..255] of INTEGER;                { only for temporary use }
  218.             end;
  219.  
  220.         DateCachePtr = ^DateCacheRecord;
  221.  
  222.         BreakTable = record
  223.                 charTypes: packed array[0..255] of CHAR;
  224.                 tripleLength: INTEGER;
  225.                 triples: array[0..0] of INTEGER;
  226.             end;
  227.  
  228.         BreakTablePtr = ^BreakTable;
  229.  
  230. { New NBreakTable for System 7.0: }
  231.         NBreakTable = record
  232.                 flags1: SInt8;
  233.                 flags2: SInt8;
  234.                 version: INTEGER;
  235.                 classTableOff: INTEGER;
  236.                 auxCTableOff: INTEGER;
  237.                 backwdTableOff: INTEGER;
  238.                 forwdTableOff: INTEGER;
  239.                 doBackup: INTEGER;
  240.                 length: INTEGER;                                { length of NBreakTable }
  241.                 charTypes: packed array[0..255] of CHAR;
  242.                 tables: array[0..0] of INTEGER;
  243.             end;
  244.  
  245.         NBreakTablePtr = ^NBreakTable;
  246.  
  247.  
  248.     function InitDateCache (theCache: DateCachePtr): OSErr;
  249.     {$IFC NOT GENERATINGCFM}
  250.     inline
  251.         $2F3C, $8204, $FFF8, $A8B5;
  252.     {$ENDC}
  253.     function Munger (h: Handle; offset: LONGINT; ptr1: univ Ptr; len1: LONGINT; ptr2: univ Ptr; len2: LONGINT): LONGINT;
  254.     {$IFC NOT GENERATINGCFM}
  255.     inline
  256.         $A9E0;
  257.     {$ENDC}
  258.     function NewString (theString: ConstStr255Param): StringHandle;
  259.     {$IFC NOT GENERATINGCFM}
  260.     inline
  261.         $A906;
  262.     {$ENDC}
  263.     procedure SetString (theString: StringHandle; strNew: ConstStr255Param);
  264.     {$IFC NOT GENERATINGCFM}
  265.     inline
  266.         $A907;
  267.     {$ENDC}
  268.     function GetString (stringID: INTEGER): StringHandle;
  269.     {$IFC NOT GENERATINGCFM}
  270.     inline
  271.         $A9BA;
  272.     {$ENDC}
  273.     procedure GetIndString (var theString: Str255; strListID: INTEGER; index: INTEGER);
  274.     function ScriptOrder (script1: ScriptCode; script2: ScriptCode): INTEGER;
  275.     {$IFC NOT GENERATINGCFM}
  276.     inline
  277.         $3F3C, $001E, $A9ED;
  278.     {$ENDC}
  279.     function StyledLineBreak (textPtr: Ptr; textLen: LONGINT; textStart: LONGINT; textEnd: LONGINT; flags: LONGINT; var textWidth: Fixed; var textOffset: LONGINT): StyledLineBreakCode;
  280.     {$IFC NOT GENERATINGCFM}
  281.     inline
  282.         $2F3C, $821C, $FFFE, $A8B5;
  283.     {$ENDC}
  284.     function TruncString (width: INTEGER; var theString: Str255; truncWhere: TruncCode): INTEGER;
  285.     {$IFC NOT GENERATINGCFM}
  286.     inline
  287.         $2F3C, $8208, $FFE0, $A8B5;
  288.     {$ENDC}
  289.     function TruncText (width: INTEGER; textPtr: Ptr; var length: INTEGER; truncWhere: TruncCode): INTEGER;
  290.     {$IFC NOT GENERATINGCFM}
  291.     inline
  292.         $2F3C, $820C, $FFDE, $A8B5;
  293.     {$ENDC}
  294.     function ReplaceText (baseText: Handle; substitutionText: Handle; var key: Str15): INTEGER;
  295.     {$IFC NOT GENERATINGCFM}
  296.     inline
  297.         $2F3C, $820C, $FFDC, $A8B5;
  298.     {$ENDC}
  299.     procedure FindWordBreaks (textPtr: Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; breaks: BreakTablePtr; var offsets: OffsetTable; script: ScriptCode);
  300.     {$IFC NOT GENERATINGCFM}
  301.     inline
  302.         $2F3C, $C012, $001A, $A8B5;
  303.     {$ENDC}
  304.     procedure LowercaseText (textPtr: Ptr; len: INTEGER; script: ScriptCode);
  305.     {$IFC NOT GENERATINGCFM}
  306.     inline
  307.         $3F3C, $0000, $2F3C, $800A, $FFB6, $A8B5;
  308.     {$ENDC}
  309.     procedure UppercaseText (textPtr: Ptr; len: INTEGER; script: ScriptCode);
  310.     {$IFC NOT GENERATINGCFM}
  311.     inline
  312.         $3F3C, $0400, $2F3C, $800A, $FFB6, $A8B5;
  313.     {$ENDC}
  314.     procedure StripDiacritics (textPtr: Ptr; len: INTEGER; script: ScriptCode);
  315.     {$IFC NOT GENERATINGCFM}
  316.     inline
  317.         $3F3C, $0200, $2F3C, $800A, $FFB6, $A8B5;
  318.     {$ENDC}
  319.     procedure UppercaseStripDiacritics (textPtr: Ptr; len: INTEGER; script: ScriptCode);
  320.     {$IFC NOT GENERATINGCFM}
  321.     inline
  322.         $3F3C, $0600, $2F3C, $800A, $FFB6, $A8B5;
  323.     {$ENDC}
  324.     function FindScriptRun (textPtr: Ptr; textLen: LONGINT; var lenUsed: LONGINT): ScriptRunStatus;
  325.     {$IFC NOT GENERATINGCFM}
  326.     inline
  327.         $2F3C, $820C, $0026, $A8B5;
  328.     {$ENDC}
  329.     function EqualString (str1: ConstStr255Param; str2: ConstStr255Param; caseSensitive: BOOLEAN; diacSensitive: BOOLEAN): BOOLEAN;
  330.     procedure UpperString (var theString: Str255; diacSensitive: BOOLEAN);
  331.     procedure StringToNum (theString: ConstStr255Param; var theNum: LONGINT);
  332.     procedure NumToString (theNum: LONGINT; var theString: Str255);
  333.     function RelString (str1: ConstStr255Param; str2: ConstStr255Param; caseSensitive: BOOLEAN; diacSensitive: BOOLEAN): INTEGER;
  334.     function StringToDate (textPtr: Ptr; textLen: LONGINT; theCache: DateCachePtr; var lengthUsed: LONGINT; var dateTime: LongDateRec): StringToDateStatus;
  335.     {$IFC NOT GENERATINGCFM}
  336.     inline
  337.         $2F3C, $8214, $FFF6, $A8B5;
  338.     {$ENDC}
  339.     function StringToTime (textPtr: Ptr; textLen: LONGINT; theCache: DateCachePtr; var lengthUsed: LONGINT; var dateTime: LongDateRec): StringToDateStatus;
  340.     {$IFC NOT GENERATINGCFM}
  341.     inline
  342.         $2F3C, $8214, $FFF4, $A8B5;
  343.     {$ENDC}
  344.     function ExtendedToString (var x: extended80; {CONST}
  345.                                     var myCanonical: NumFormatString; {CONST}
  346.                                     var partsTable: NumberParts; var outString: Str255): FormatStatus;
  347.     {$IFC NOT GENERATINGCFM}
  348.     inline
  349.         $2F3C, $8210, $FFE8, $A8B5;
  350.     {$ENDC}
  351.     function StringToExtended (source: ConstStr255Param; {CONST}
  352.                                     var myCanonical: NumFormatString; {CONST}
  353.                                     var partsTable: NumberParts; var x: extended80): FormatStatus;
  354.     {$IFC NOT GENERATINGCFM}
  355.     inline
  356.         $2F3C, $8210, $FFE6, $A8B5;
  357.     {$ENDC}
  358.     function StringToFormatRec (inString: ConstStr255Param; {CONST}
  359.                                     var partsTable: NumberParts; var outString: NumFormatString): FormatStatus;
  360.     {$IFC NOT GENERATINGCFM}
  361.     inline
  362.         $2F3C, $820C, $FFEC, $A8B5;
  363.     {$ENDC}
  364.     function FormatRecToString ({CONST}
  365.                                     var myCanonical: NumFormatString; {CONST}
  366.                                     var partsTable: NumberParts; var outString: Str255; var positions: TripleInt): FormatStatus;
  367.     {$IFC NOT GENERATINGCFM}
  368.     inline
  369.         $2F3C, $8210, $FFEA, $A8B5;
  370.     {$ENDC}
  371. {}
  372. {    The following functions are old names, but are required for PowerPC builds}
  373. {    becuase InterfaceLib exports these names, instead of the new ones.}
  374. {}
  375.     function IUMagString (aPtr: univ Ptr; bPtr: univ Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
  376.     {$IFC NOT GENERATINGCFM}
  377.     inline
  378.         $3F3C, $000A, $A9ED;
  379.     {$ENDC}
  380.     function IUMagIDString (aPtr: univ Ptr; bPtr: univ Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
  381.     {$IFC NOT GENERATINGCFM}
  382.     inline
  383.         $3F3C, $000C, $A9ED;
  384.     {$ENDC}
  385.     function IUMagPString (aPtr: univ Ptr; bPtr: univ Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Handle): INTEGER;
  386.     {$IFC NOT GENERATINGCFM}
  387.     inline
  388.         $3F3C, $001A, $A9ED;
  389.     {$ENDC}
  390.     function IUMagIDPString (aPtr: univ Ptr; bPtr: univ Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Handle): INTEGER;
  391.     {$IFC NOT GENERATINGCFM}
  392.     inline
  393.         $3F3C, $001C, $A9ED;
  394.     {$ENDC}
  395.     procedure IUDateString (dateTime: LONGINT; longFlag: ByteParameter; var result: Str255);
  396.     {$IFC NOT GENERATINGCFM}
  397.     inline
  398.         $4267, $A9ED;
  399.     {$ENDC}
  400.     procedure IUTimeString (dateTime: LONGINT; wantSeconds: BOOLEAN; var result: Str255);
  401.     {$IFC NOT GENERATINGCFM}
  402.     inline
  403.         $3F3C, $0002, $A9ED;
  404.     {$ENDC}
  405.     procedure IUDatePString (dateTime: LONGINT; longFlag: ByteParameter; var result: Str255; intlHandle: Handle);
  406.     {$IFC NOT GENERATINGCFM}
  407.     inline
  408.         $3F3C, $000E, $A9ED;
  409.     {$ENDC}
  410.     procedure IUTimePString (dateTime: LONGINT; wantSeconds: BOOLEAN; var result: Str255; intlHandle: Handle);
  411.     {$IFC NOT GENERATINGCFM}
  412.     inline
  413.         $3F3C, $0010, $A9ED;
  414.     {$ENDC}
  415.     procedure IULDateString (var dateTime: LongDateTime; longFlag: ByteParameter; var result: Str255; intlHandle: Handle);
  416.     {$IFC NOT GENERATINGCFM}
  417.     inline
  418.         $3F3C, $0014, $A9ED;
  419.     {$ENDC}
  420.     procedure IULTimeString (var dateTime: LongDateTime; wantSeconds: BOOLEAN; var result: Str255; intlHandle: Handle);
  421.     {$IFC NOT GENERATINGCFM}
  422.     inline
  423.         $3F3C, $0016, $A9ED;
  424.     {$ENDC}
  425.     function IUScriptOrder (script1: ScriptCode; script2: ScriptCode): INTEGER;
  426.     {$IFC NOT GENERATINGCFM}
  427.     inline
  428.         $3F3C, $001E, $A9ED;
  429.     {$ENDC}
  430.     function IULangOrder (language1: LangCode; language2: LangCode): INTEGER;
  431.     {$IFC NOT GENERATINGCFM}
  432.     inline
  433.         $3F3C, $0020, $A9ED;
  434.     {$ENDC}
  435.     function IUTextOrder (aPtr: univ Ptr; bPtr: univ Ptr; aLen: INTEGER; bLen: INTEGER; aScript: ScriptCode; bScript: ScriptCode; aLang: LangCode; bLang: LangCode): INTEGER;
  436.     {$IFC NOT GENERATINGCFM}
  437.     inline
  438.         $3F3C, $0022, $A9ED;
  439.     {$ENDC}
  440.     procedure FindWord (textPtr: Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; breaks: BreakTablePtr; var offsets: OffsetTable);
  441.     {$IFC NOT GENERATINGCFM}
  442.     inline
  443.         $2F3C, $8012, $001A, $A8B5;
  444.     {$ENDC}
  445.     procedure NFindWord (textPtr: Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; nbreaks: NBreakTablePtr; var offsets: OffsetTable);
  446.     {$IFC NOT GENERATINGCFM}
  447.     inline
  448.         $2F3C, $8012, $FFE2, $A8B5;
  449.     {$ENDC}
  450.     procedure UprText (textPtr: Ptr; len: INTEGER);
  451.     {$IFC NOT GENERATINGCFM}
  452.     inline
  453.         $301F, $205F, $A054;
  454.     {$ENDC}
  455.     procedure LwrText (textPtr: Ptr; len: INTEGER);
  456.     {$IFC NOT GENERATINGCFM}
  457.     inline
  458.         $301F, $205F, $A056;
  459.     {$ENDC}
  460.     procedure LowerText (textPtr: Ptr; len: INTEGER);
  461.     {$IFC NOT GENERATINGCFM}
  462.     inline
  463.         $301F, $205F, $A056;
  464.     {$ENDC}
  465.     procedure StripText (textPtr: Ptr; len: INTEGER);
  466.     {$IFC NOT GENERATINGCFM}
  467.     inline
  468.         $301F, $205F, $A256;
  469.     {$ENDC}
  470.     procedure UpperText (textPtr: Ptr; len: INTEGER);
  471.     {$IFC NOT GENERATINGCFM}
  472.     inline
  473.         $301F, $205F, $A456;
  474.     {$ENDC}
  475.     procedure StripUpperText (textPtr: Ptr; len: INTEGER);
  476.     {$IFC NOT GENERATINGCFM}
  477.     inline
  478.         $301F, $205F, $A656;
  479.     {$ENDC}
  480.     function IUCompPString (aStr: ConstStr255Param; bStr: ConstStr255Param; itl2Handle: Handle): INTEGER;
  481.     function IUEqualPString (aStr: ConstStr255Param; bStr: ConstStr255Param; itl2Handle: Handle): INTEGER;
  482.     function IUStringOrder (aStr: ConstStr255Param; bStr: ConstStr255Param; aScript: ScriptCode; bScript: ScriptCode; aLang: LangCode; bLang: LangCode): INTEGER;
  483.     function IUCompString (aStr: ConstStr255Param; bStr: ConstStr255Param): INTEGER;
  484.     function IUEqualString (aStr: ConstStr255Param; bStr: ConstStr255Param): INTEGER;
  485. {}
  486. {    The following provide direct function prototypes for new names for 68k}
  487. {}
  488.     procedure DateString (dateTime: LONGINT; longFlag: ByteParameter; var result: Str255; intlHandle: Handle);
  489.     {$IFC NOT GENERATINGCFM}
  490.     inline
  491.         $3F3C, $000E, $A9ED;
  492.     {$ENDC}
  493.     procedure TimeString (dateTime: LONGINT; wantSeconds: BOOLEAN; var result: Str255; intlHandle: Handle);
  494.     {$IFC NOT GENERATINGCFM}
  495.     inline
  496.         $3F3C, $0010, $A9ED;
  497.     {$ENDC}
  498.     procedure LongDateString (var dateTime: LongDateTime; longFlag: ByteParameter; var result: Str255; intlHandle: Handle);
  499.     {$IFC NOT GENERATINGCFM}
  500.     inline
  501.         $3F3C, $0014, $A9ED;
  502.     {$ENDC}
  503.     procedure LongTimeString (var dateTime: LongDateTime; wantSeconds: BOOLEAN; var result: Str255; intlHandle: Handle);
  504.     {$IFC NOT GENERATINGCFM}
  505.     inline
  506.         $3F3C, $0016, $A9ED;
  507.     {$ENDC}
  508.     function CompareString (aStr: ConstStr255Param; bStr: ConstStr255Param; itl2Handle: Handle): INTEGER;
  509.     function IdenticalString (aStr: ConstStr255Param; bStr: ConstStr255Param; itl2Handle: Handle): INTEGER;
  510.     function CompareText (aPtr: univ Ptr; bPtr: univ Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Handle): INTEGER;
  511.     {$IFC NOT GENERATINGCFM}
  512.     inline
  513.         $3F3C, $001A, $A9ED;
  514.     {$ENDC}
  515.     function IdenticalText (aPtr: univ Ptr; bPtr: univ Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Handle): INTEGER;
  516.     {$IFC NOT GENERATINGCFM}
  517.     inline
  518.         $3F3C, $001C, $A9ED;
  519.     {$ENDC}
  520.     function LanguageOrder (language1: LangCode; language2: LangCode): INTEGER;
  521.     {$IFC NOT GENERATINGCFM}
  522.     inline
  523.         $3F3C, $0020, $A9ED;
  524.     {$ENDC}
  525.     function TextOrder (aPtr: univ Ptr; bPtr: univ Ptr; aLen: INTEGER; bLen: INTEGER; aScript: ScriptCode; bScript: ScriptCode; aLang: LangCode; bLang: LangCode): INTEGER;
  526.     {$IFC NOT GENERATINGCFM}
  527.     inline
  528.         $3F3C, $0022, $A9ED;
  529.     {$ENDC}
  530.     function StringOrder (aStr: ConstStr255Param; bStr: ConstStr255Param; aScript: ScriptCode; bScript: ScriptCode; aLang: LangCode; bLang: LangCode): INTEGER;
  531. {$IFC NOT OLDROUTINELOCATIONS }
  532.     procedure C2PStrProc (aStr: univ Ptr);
  533.     function C2PStr (cString: univ Ptr): StringPtr;
  534.     procedure P2CStrProc (aStr: StringPtr);
  535.     function P2CStr (pString: StringPtr): Ptr;
  536. {$ENDC}
  537.  
  538. { $ALIGN RESET}
  539. { $POP}
  540.  
  541. {$ENDC}
  542.  {__TEXTUTILS__}
  543.  
  544. implementation
  545. end.
  546.